# Author    :Dun_Hz
# Time      :2024/3/15 11:44
# 用分治算法查找一个列表中的最大值
# 如果列表有1或2个元素，用max返回最大值
# 分治算法，不断除以2进行分割，分别查找2段列表的最大值
# 基本子算法
def get_max(list):
    return max(list)
def solve(list):
    n = len(list)
    if n<=2:
        return get_max(list)
    left_list,right_list = list[:n//2],list[n//2:]
    left_max = solve(left_list)
    right_max = solve(right_list)
    return get_max([left_max, right_max])

if __name__ =='__main__':
    test_list = [12,2,23,45]
    print(solve(test_list))